package com.bjpowernode.config;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

//针对商品修改状态（商品上下架的操作）
// 定义一个切面类，用于对PmsProductServiceImpl类中的changeStatus方法进行切面处理
@Component
@Aspect
public class ProductAop {

    /**
     * 在PmsProductServiceImpl类的changeStatus方法执行后执行该切面逻辑
     * @param joinPoint 切点表达式，用于获取方法执行的相关信息
     * @return 无返回值
     * @afterReturning 用于指定在目标方法返回后执行该方法
     * @value 切点表达式，指定要拦截的方法，这里是changeStatus方法
     */
    @AfterReturning(value = "execution(public * com.bjpowernode.service.impl.PmsProductServiceImpl.changeStatus(..))")
    public void updateSearch(JoinPoint joinPoint){
        // 获取方法传入的参数
        Object[] args = joinPoint.getArgs();
        // 获取第一个参数，即商品ID
        String id = String.valueOf(args[0]);
        // 获取第二个参数，即发布状态
        Boolean isPublish = Boolean.valueOf(String.valueOf(args[1]));
        // 打印商品ID和发布状态
        System.out.println(id);
        System.out.println(isPublish);
    }
}


